package com.cskaoyan.javase.oop3._1interface._3exercise;

/**
 * 教练（Coach）和运动员（Sportsman）案例
 * 小试牛刀请用所学知识分析：这个案例中有哪些抽象类，哪些接口，哪些具体类。
 * 现在有乒乓球运动员和篮球运动员，乒乓球教练和篮球教练。
 * 为了能够出国交流，跟乒乓球相关的人员都需要学习英语
 *
 * 抽象类: 抽象教练类,抽象运动员类
 * 接口: 学习英语(额外技能)
 * 具体类: 乒乓球/篮球教练类,乒乓球/篮球运动员类
 *
 * @since 11:01
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // 创建乒乓球教练对象
        TableTennisCoach ttc = new TableTennisCoach();
        BaseCoach bc = new TableTennisCoach();
        IStudy is = new TableTennisCoach();
    }
}

abstract class BaseCoach {
    double salary;
    int age;
    String name;
    String course;

    public abstract void teach();
}

abstract class BaseSportsman {
    double salary;
    int age;
    String name;
    String sports;

    public abstract void exercise();
}

interface IStudy {
    void learningEnglish();
}

// 乒乓球教练
class TableTennisCoach extends BaseCoach implements IStudy {
    @Override
    public void teach() {
        System.out.println("我教乒乓球!");
    }
    @Override
    public void learningEnglish() {
        System.out.println("我要学英语!");
    }
}

class BasketballSportsman extends BaseSportsman {
    @Override
    public void exercise() {
        System.out.println("我打篮球很棒!");
    }
}